# 环节1：文档加载 - 把PDF转成文字列表

# 导入需要的库
from langchain.document_loaders import PyPDFLoader


def load_pdf_document(file_path):
    """
    加载PDF文档并返回每一页的内容

    参数:
        file_path: PDF文件的路径

    返回:
        pages: 包含每一页内容的列表，每个元素是一个Document对象
    """
    try:
        # 创建PDF加载器对象，传入文件路径
        loader = PyPDFLoader(file_path)

        # 加载PDF文件，返回每一页的内容
        # 每个元素是一个Document对象，包含page_content(文字内容)和metadata(元数据)
        pages = loader.load()

        # 打印加载结果信息，方便验证
        print(f"成功加载PDF文件: {file_path}")
        print(f"总页数: {len(pages)}")

        # 返回加载的页面内容
        return pages

    except FileNotFoundError:
        print(f"错误: 找不到文件 '{file_path}'，请检查文件路径是否正确")
        return None
    except Exception as e:
        print(f"加载PDF时发生错误: {str(e)}")
        return None


# 主程序：测试文档加载功能
if __name__ == "__main__":
    # 假设PDF文件与代码在同一文件夹下，这里替换为你的PDF文件名
    pdf_file_path = "平安保险用户手册.pdf"

    # 调用函数加载PDF
    document_pages = load_pdf_document(pdf_file_path)

    # 如果加载成功，展示第一页的部分内容作为验证
    if document_pages:
        print("\n----- 第一页内容预览 -----")
        # 只显示前500个字符，避免输出过多
        preview = document_pages[0].page_content[:500]
        print(preview)
        print("\n-------------------------")

        # 展示第一页的元数据（包含页码等信息）
        print("第一页元数据:", document_pages[0].metadata)